1
Más allá de pares: Agrupación multi-tipo con tuplas
AI037Lesson 19
00:00

En la arquitectura de sistemas grandes en C++, definir un tipo formal struct para cada agrupación temporal de datos suele ser excesivo. La std::tuple actúa como un contenedor heterogéneo, generalizando std::pair para contener un número arbitrario de tipos distintos.

1. Construcción y restricciones

A diferencia de los contenedores estándar, el tuple constructor es explícito. No puedes usar inicialización por copia con una lista; debes usar inicialización directa o std::make_tuple.

tuple<int, double> t1{1, 2.5}; // Correcto
tuple<int, double> t2 = {1, 2.5}; // ¡Error!

2. Acceso e introspección

Los miembros se acceden mediante get<i>(nombre_tupla), donde i debe ser una expresión constante conocida en tiempo de compilación. Los metadatos pueden consultarse mediante tuple_size y tuple_element usando decltype.

Estructura de memoria de std::tuplecadenaget<0>intget<1>doubleget<2>

3. Lógica relacional

Las tuplas se comparan léxicamente. La comparación solo es válida si ambas tuplas tienen el mismo número de miembros y sus tipos correspondientes admiten operadores relacionales.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>